Method, system, and computer readable medium for managing resource links

ABSTRACT

Resource links also known as Unified Resource Links (URL&#39;s), bookmarks, hyperlinks etc. located in a category hierarchy. The resource links are used to navigate on the world wide web, on a local machine, on the internet, or on an intranet. A method of assessing a users competence in a category in the category structure comprising the steps of analysing the users interaction with the resource links placed in the hierarchy table for that category and extracting a competence level for the user in that category.

This invention relates to finding relevant resources on a large network.This has traditionally been done either by having a program searchthrough the resources and placing indexed resource links in a database,or by having a human editor sort the resources and place resource linksto the resources in a category hierarchy. Resource links are linkspointing to a resource on the local computer or on a network. Theseresource links may include hyperlinks or bookmarks to documents on theInternet. A user may then conduct a search within the indexed resourcelinks, and receive a search result based on matches to his searchcriteria.

The problem with these two approaches will be described below:

Having a program search through a large amount of content on theInternet or an Intranet and place indexed resource links in a searchabledatabase poses some problems. It has proven to be extremely hard tocreate a program that can locate relevant content.

The main problem is that traditional programs will base the result of asearch query on a computerized and stringent set of criteria, whichoften fall short of the complexity of the real world. It is very hard toset up algorithms for locating and rating the resource links that arerelevant for a specific user's search. This is problematic since a veryhigh number of search results are often returned. It is even harder torate these returned results, based on quality or popularity because nomeasurement of these properties usually exists.

The problem is particularly evident when searching for content on theInternet, or on a large Intranet. An Intranet is a number of computersconnected in a closed network.

Having a human editor sort through content and sorting resource links tothe content into category hierarchy containing several categories andsubcategories poses other problems. It is very ineffective to use humansto index information, especially if the network is large, such as theInternet. This is problematic because it relies on the knowledge of theindividual sorting the content. There is a fair chance that at leastsome resource links to content will be indexed or even ratedincorrectly.

Furthermore, the problem with both of these approaches is that neitherof the above systems relate the search results to the uniquecharacteristics of the user conducting the search query. This is aproblem since two users conducting a search containing the same searchstring may expect entirely different results, based on what priorknowledge and interests they have.

The known techniques to address these problems are inadequate, and fallfar short of the goal. Particularly it has been hard to create a systemthat only indexes resource links to relevant pieces of content based onthe users preferences. Typically a search query may result in thousandsof returned results where only a marginal part are truly relevant forthe user.

Thus, the problem with finding relevant content on a large network isthat a large number of irrelevant results are returned to a searchquery, and that an editor does not possess the knowledge or theresources to sort a large number or resource links pointing to relevantcontent.

Implementing the device described below solves this problem.

Consequently, this invention relates to indexing content on a largenetwork, rating it by relevance, filtering it, and presenting it to auser.

The invention will be explained more fully below in connection with apreferred embodiment and with reference to the drawing, in which:

FIG. 1 shows a computer system with a client computer and a servercomputer for running a program according to the invention;

FIG. 2 shows components on the server computer;

FIG. 3 shows components on the client computer;

FIG. 4 shows a category hierarchy;

FIG. 5 shows a flowchart of communicating resource link informationbetween the client and the server;

FIG. 6 shows a detailed flowchart of filtering and ordering resourcelinks;

FIG. 7 shows a flowchart of rating a user's competence within acategory; and

FIG. 8 shows a detailed flowchart of rating resource links according tousage data.

FIG. 1 shows a computer system with a client computer and a servercomputer for running a program according to the invention. A clientcommunicates with a server via LAN or WAN. The client consists of abrowser (11) and a client (12). The client communicates via a networklayer (13) with the server (20) via WAN or LAN. The server consists of aserver application (21) that communicates with the client protocol via anetwork layer (22).

The client application 12 monitors the client file- or web browser 11activity and registers parameters representative of this activity. Theseparameters are submitted to the server application 21 via the networklayer 13 either automatically or upon a user's command. The parameterscan be e.g. the point of time at which a resource link is activated, thetype of interaction, the time a connection to the resource was open, areference to the resource link or the link itself, etc. The type ofinteraction can be e.g. clicking a link to the resource in a document,typing the URL to the resource in a browser, creating a bookmark to theresource etc.

The activity of the file- or web browser 11 can be monitored by directinteraction with the browsers event and properties system or bymonitoring log data stored by the browser, or by monitoring network datatraffic.

All client applications have a unique identification number. Theseparameters are submitted to the server application 21 as a packet withthe unique identification number appended for the purpose of relatingthe parameters to a specific client at the server.

FIG. 2 shows components on the server computer. The server application47 requests and updates data via a database application 46. In thedatabase application data is kept in a number of tables: A categorytable 42; a resource link table 43; a user table 44; a submit table 45;and a usage table 48.

Information in the form of parameters in packets received from clientapplications is processed by the server application and stored indifferent tables. Parameters relating to client interaction withresource links are stored in the usage table 48. If the type of clientinteraction is creating a bookmark to the resource, the parameters maybe stored in the submit table 45.

A category hierarchy 41 wherein resource links are ordered exists on theserver. This hierarchy comprises a category table 42 and a link table43. If a resource link submitted by a client exists in the link table43, the resource link is already associated with a category ID in thecategory table 42.

-   -   The category table 42 consists of at least, but not necessarily        just the following fields:        -   ID. ID comprises a unique ID associated with the category.        -   Name. Comprises the name of the category    -   The link table 43 consists of at least, but not necessarily just        the following fields:        -   ID. ID comprises a unique ID associated with the link.        -   URL (Uniform Resource Locator)        -   Title. The title of the link. This title may be derived from            the site that is linked to, or from user-input.

Together 42 and 43 comprise the hierarchy database 41.

-   -   The user table 44 consists of at least, but not necessarily just        the following fields:        -   ID. A unique user ID to identify the user.        -   Userinfo, that may, among other things, consist of a name,            codeword and demographical data.    -   The submit table 45 consists of at least, but not necessarily        just the following fields:        -   Link ID, that refers to 43.        -   User ID, that refers to 44        -   Category ID, that refers to 42        -   Timestamp that asses when an item in the submit table has            been accessed and for how long.    -   The usage table 48 consists of at least, but not necessarily        just the following fields        -   Link ID, that refers to 43        -   User ID, that refers to 44        -   Timestamp that asses when an item in the submit table has            been accessed and for how long.

FIG. 3 shows components on the client computer. Describes the client.The figure describes the client application in fig. A. The clientcomprises the following parts:

User Login 31

Submit favourites 32

Search 33

Present hierarchy 34

Use links 35

FIG. 4 shows a category hierarchy. The category hierarchy is stored inthe hierarchy table 41. The hierarchy consists of a number of levels. Oneach level there are one or more categories. Each category may containone or more categories and/or items in the form of resource links. Inany category, on any given level in the category hierarchy it ispossible to view items deriving from that category or any categorywithin it. For instance viewing items in the category 121 on level 0,may include items 124, 125 and 126, but also items 129, 130, 136, 137,138, 139, 133, 134, 141, and 142. Furthermore, viewing items in thecategory 123 on level 1, may include items 133 and 134, but also items138, 139, 141 and 142, but not items 129, 130, 136 or 137.

The category hierarchy 120 can be viewed and browsed by a user of aclient application 12, and viewed items may be presented in a filteredand/or rated list in accordance with claim 1. Filter and rating criteriamay be set by the individual users. The individual users may also chooseto move certain categories or items to other locations in the hierarchy.However, this may only affect the local presentation of the hierarchyfor that user. If a user for instance chooses to do so he may have alevel 3 category 135 presented in level 0 by moving it to this level.The category will remain in the same place in the server hierarchy.

FIG. 5 shows a flowchart of communicating resource link informationbetween the client and the server. The client application requests toview a certain category (51) by sending a request to the serverapplication (21). The server application retrieves all resource linksand categories placed within the category in question 61, these resourcelinks are filtered, rated and ordered 64, and the process is repeatedrecursively for each category retrieved 66. After all requested resourcelinks have been retrieved, they are sorted by rating 67 and the sortedlist is sent to the client application 68. The client application savesevery new incoming link (53), waits until all links have arrived, or theserver times out 54 and makes a final sorting before the list ispresented to the user 55.

FIG. 6 shows a detailed flowchart of filtering and ordering resourcelinks. The server application reviews every resource link 70, retrievesthe category ID of the associated category 71, and a list of usageentries relating to the current item 72. The application then rates theitem according to the current rating criteria 73. If the item passes thecurrent filter criteria 74 it is added to the list along with the itemrating 75 and processing moves onto the next resource link in the list76. Finally, all links are sorted according to their rating 77.

The current filter criteria may be defined by either the user or by theserver, and may also comprise a separate rating and filtering processaccording to a set of rating criteria different those used previously73. Thus, it may be possible to prevent resources that share certaincharacteristics from appearing in a listing.

FIG. 7 shows a flowchart of rating a user's competence within a category(c). Category ID and user ID are retrieved 91 and usage data relating tosaid users usage of resources in said category (c) is retrieved from theusage table 48. For each of these usage entries u(n) 93 activityparameters are retrieved 94 and the users rating in said category R(c)is adjusted accordingly 95. This is repeated until there are no usageentries for this category and user 96. Finally, the calculated userrating for this category is stored in the user table 44.

The calculation of a users rating in a category R(c), may be based onvarious formulas;

-   -   R(c) is a linear function where each usage entry u(n) adds a        fixed value to R(c)    -   R(c) is a linear function where each usage entry u(n) adds a        fixed value to R(c), and divided by the total number of usage        entries in said category (c).    -   R(c) is a logarithmic function, where each usage entry u(n)        represents a slightly different change in R(c).

The rating R(c) may be a floating point number with a minimum value of1.0 for users with no usage entries within said category, and a highervalue for users with more usage entries within said category.

FIG. 8 shows a detailed flowchart of rating resource links according tousage data. For every line in the usage table 48 relating to the currentresource link 80, the application retrieves the user ID for the userthat submitted the data, which comprise that usage entry, and a ratingR(c) of that user's competence in the current category (c) 82. Thecurrent resource link's rating is then multiplied by R(c) 83 and theprocess is repeated until there are no more lines in the usage table 48for that category 84.

This results in a rated list of resource links where the highest rankedare those that most high ranked user have accessed. Thus resources thatare generally used more by people with higher competence within thecurrent category are rated highest.

This rating could be performed in a number of other ways using theaccumulated set of activity parameters in the database submitted by allthe clients programs installed on machines, from which resources withinsaid category has been accessed:

-   -   The rating could be based solely on the number of usage entries        for each resource link. Thus, content accessed the most by all        users of the system would be rated highest.    -   The rating could be based on usage by a subset of users, who        share certain characteristics. These characteristics may include        a rating of the user's competence within said category.    -   The rating could be based on the timestamp submitted as part of        the activity parameters. Thus, content accessed more recently by        a larger number of people may be rated highest.    -   The rating could be based on a modification date submitted as        part of the activity parameters. Thus, content updated more        recently may be rated highest.

The invention may be embodied as a computer program or a part of acomputer program, which may be loaded into the memory of a computer andexecuted therefrom. The computer program may be distributed by means ofany data storage or data transmission medium. The storage media can bemagnetic tape, optical disc, compact disc (CD or CD-ROM), mini-disc,hard disk, floppy disk, ferro-electric memory, electrically erasableprogrammable read only memory (EEPROM), flash memory, EPROM, read onlymemory (ROM), static random access memory (SRAM), dynamic random accessmemory (DRAM), ferromagnetic memory, optical storage, charge coupleddevices, smart cards, etc. The transmission medium can be a network,e.g. a local area network (LAN), a wide area network (WAN), or anycombination thereof, e.g. the Internet. The network may comprise wireand wire-less communication links. Via the network a software embodiment(i.e. a program) of the invention, or a part thereof, may be distributedby transferring a program via the network.

1. A method of obtaining a list of resource links indexed in a categoryhierarchy to be presented to a user, the resource links pointing toresources on a network, the method comprising the following steps to becarried out by a computer system: monitoring users' interaction withresource links by: for users' interaction with a resource link in thecategory hierarchy, generating a usage entry in a usage table on aserver computer, wherein each usage entry includes a set of activityparameters comprising a link ID, a user ID and a timestamp, analyzing auser's interaction with the resource links placed in any one category ofthe category hierarchy including retrieving, from the usage table, theuser's entries for resource links within the one category; andcalculating a user rating for the user in the one category; ratingresource links from a requested category in the category hierarchy, therating comprising: retrieving all resource links placed within therequested category and all resource links placed within all categoriesheld by the requested category, and rating the retrieved resource linksusing accumulated sets of activity parameters in the usage table, theresource links ratings based on the calculated user ratings of aplurality of users who have previously interacted with a resource linkwithin the requested category or any categories held by the requestedcategory.
 2. A method according to claim 1, wherein the user ratingwithin said one category is calculated by assessing a frequency orduration of the user's interaction with resources pointed to by aresource link in said one category.
 3. A method according to claim 1,wherein the user rating within said one category is calculated byassessing when the user has interacted with resources pointed to by aresource link in said one category.
 4. A method according to claim 1,where the resource links ratings are arranged in a rated list ofresource links where higher rated resource links are accessed by higherrated users.
 5. A method according to claim 1, where the resource linksratings are based on the number of usage entries for each resource link,such that content accessed the most often by all clients is ratedhigher.
 6. A method according to claim 1, where the resource linksratings are based on usage by a subset of users who share certaincharacteristics, where these certain characteristics include the ratingof the users within the requested category.
 7. A method according toclaim 1, where the resource links ratings are based on a timestampsubmitted as part of the activity parameters, such that content accessedmore recently by a larger number of users is rated higher.
 8. A methodaccording to claim 1, where the resource links ratings are based atleast in part on a modification date submitted as part of the activityparameters, such that content updated more recently is rated higher. 9.A computer system, having means for executing a program, wherein theprogram when executed is to make the computer system execute the methodaccording to claim
 1. 10. A computer readable medium, having a programrecorded thereon, wherein the program when executed is to make thecomputer system execute the method according to claim
 1. 11. A methodaccording to claim 1, wherein the user's rating in the one category iscalculated as a linear function of all the user's usage entries withinthe one category divided by the total number of usage entries within theone category.
 12. A method according to claim 1, wherein the user'srating in the one category is calculated as a logarithmic function whereeach usage entry within the one category from the user represents aslightly different change in the user's rating in the one category. 13.A method according to claim 1, wherein the user rating is a floatingpoint number with a minimum value of 1.0 for users with no usage entrieswithin the one category, and a higher value for users with usage entrieswithin the one category, and wherein each of the resource links ratingare a multiplication of the user ratings of all users that have accessedsaid resource link.